//引入axios包
import axios from "axios";
//通过axios创建对象，用于发送请求到后端
const request = axios.create({
    timeout: 5000
})

//request拦截器的处理，可以对请求做出统一的处理，比如加入统一的token，Content-Type
request.interceptors.request.use(config => {
    config.headers['Content-Type'] = 'application/json;charset=UTF-8';
    return config;
}, error => {
    return Promise.reject(error);
})



//response拦截器
//可以在调用接口响应后，统一地处理返回结果
request.interceptors.response.use(response => {
    let res = response.data;
    //如果返回的是文件，就返回
    if(response.config.responseType === 'blob') {
        return res;
    }
    //如果返回是String，就转成json对象
    if(typeof res === 'string') {
        //如果res不为null，就进行转换
        res = res ? JSON.parse(res) : res;
    }
    return res;
}, error => {
    return Promise.reject(error);
})

//导出组件，在其他文件中可以使用
export default request;
